/* 
 * File:   DynamicLib.h
 * Author: dell
 *
 * Created on 2012年4月4日, 下午1:44
 */

#ifndef DYNAMICLIB_H
#define	DYNAMICLIB_H

#include "common.h"
#include <dlfcn.h>

namespace Rapid{
    class DynamicLib {
    public:
        DynamicLib();
        virtual ~DynamicLib();

        /**
        * 打开动态库
        */
        bool open(const char* lib, int mode = RTLD_LAZY);

        /**
        * 返回方法指针, 如果出错返回NULL, getError()返回错误信息
        */
        void* getMethod(const char* name);


        /**
        * 关闭动态库
        */
        void close();

        const char* getError(){
            return error;
        }

    private:
        void* handle;
        const char* error;
    };
}
#endif	/* DYNAMICLIB_H */

